查看原文
其他

Unity通用渲染管线Universal Render Pipeline

Unity Unity官方平台 2022-05-07

在Unity 2019.3中,轻量级渲染管线LWRP正式升级为通用渲染管线Universal Render Pipeline


轻量级渲染管线LWRP设计的目标是具有快捷、可扩展的优点,可为所有移动设备带来高质量的图形效果。轻量级渲染管线LWRP可用于正式制作流程,在过去的一年中,我们不断为其增添功能与多平台支持,提升性能。


在Unity 2019.3中,轻量级渲染管线LWRP升级为了通用渲染管线。与其前身一样,通用渲染管线是提供精美图像和高性能的强大的解决方案,同时支持多个平台,可一次开发,多平台部署。


通用渲染管线支持最新的艺术创作工具,适用于2D、3D、虚拟现实VR和增强现实AR项目。

 

支持平台

下图是通用渲染管线支持的平台,且数量仍在不断增长。


使用通用渲染管线的优点

下面是使用通用渲染管线的优点:

  • 适用于正式制作流程。

  • 只需开发一次,即可在任何Unity支持的平台上部署。

  • 制作2D、3D、XR等各种项目的理想方案。

  • 提供专为艺术家设计的专业工具,包括:Visual Effect Graph、Shader Graph、Render Passes。

  • Unity项目未来的默认渲染方式。

  • 通用渲染管线将支持Unity 2019.4 LTS版。


升级中的注意事项

通用渲染管线是LWRP的延续,只是更改了一个新名称。对创作者而言,从LWRP向通用渲染管线的转换并不会造成任何不便,原使用LWRP的项目几乎可无差别转换为通用渲染管线项目。

 

LWRP的自定义渲染效果和着色器也会自动升级到通用渲染管线。但如果在自定义着色器使用了Shader.Find或UserPass,必须手动升级着色器路径。

 

在升级到通用渲染管线时,后期处理效果也将一并升级。现在后期处理功能已经整合到了管线中,并且其性能将比后期处理特效包Post-Processing Stack V2更强,体验会更优秀。

 

但需要注意:后期处理功能目前仍不支持自定义特效,我们计划在未来添加这项支持。

 

在通用渲染管线中,后期处理效果的功能将包括抗锯齿、景深、动态模糊、帕尼尼投影、泛光、镜头畸变、色差、颜色分级、色调映射、晕影、胶片颗粒和8位抖动。


后续,我们发布LWRP到通用渲染管线的升级指南。


下图是一些通用渲染管线的后期效果展示。


升级内置渲染管线的原因

通用渲染管线具有更多的可拓展性

Unity的内置渲染管线能够让开发者选择正向或延迟渲染路径,其拓展方法是在管线的具体事件中插入命令缓冲区。但我们便不能添加自定义的渲染策略,而拓展现有策略也会受制于插入点。


通用渲染管线引入了渲染器的概念,渲染器将实现成套的功能和光照策略,这样便为管线增添了可拓展性。


在Unity 2019.3中,通用渲染管线将带有正向渲染器,可在单通道中对所有光照着色,并提供一个支持实时光照等多种光照类型的2D渲染器。优化的延迟渲染器将在不久后推出。


在设置项目时,开发者可以在管线资源中声明一个渲染器列表,每个摄像机将根据这个列表使用渲染器。


如下图所示,左为包含渲染器列表的管线资源,右图为摄像机选择渲染器。



开发者可以使用一些渲染策略,例如:基于Tile/Cluster的渲染,创建自己的渲染器来扩展管线。


在通用渲染管线上实现自定义渲染器时,我们不需要从头开始创建自定义渲染管线,通用渲染管线将提供许多渲染模板,渲染器可以实现“即插即用”。


你还可以使用其它渲染器功能扩展渲染器,这些功能是包含资源和逻辑的可编程对象,可以插入到渲染器的渲染通道中。每个功能可以在渲染器的特定事件上插入个或多个渲染通道。通用渲染管线包含通用的RenderObjects渲染对象功能,提供高度自定义效果。


你可以在渲染器中将其添加到“Renderer Features”渲染器功能列表中。用户也可以创建自定义功能,通用渲染管线提供了创建功能的编程模板,请点击菜单在Asset -> Create -> Rendering -> Universal Render Pipeline寻找。


了解更多关于扩展通用渲染管线的内容,请访问自定义渲染功能示例:

https://github.com/Unity-Technologies/LWRP-CustomRendererExamples/


如下图所示,左图中FPSSetup是一种包含了额外渲染功能的正向渲染器。右图,我们单击“+”键可以为渲染器添加功能。



通用渲染管线拓展性实例

Crest Ocean是Asset Store资源商店中一款优质插件,其开发团队使用通用渲染管线制作出逼真的海洋效果。

 

此前要实现这种特效十分困难,但现在我们可以省去从零开始编写渲染器的麻烦,极大提升渲染效果。


下载Crest Ocean:

https://assetstore.unity.com/packages/tools/particles-effects/crest-ocean-system-lwrp-141674



通用渲染管线的性能优点

通用渲染管线与此前的内置渲染管线相比更为精简,质量更高。将内置渲染管线项目升级到通用渲染管线时,效果不但不会缩水,而且性能会有所提升。

 

我们将Polygon Farm资源包从内置渲染管线升级到了通用渲染管线,确保升级前后两个项目的质量和渲染设置完全一致,然后在iPhone 6S上比较两者的视觉和性能效果。


下载Polygon Farm资源包:

https://assetstore.unity.com/packages/3d/environments/industrial/polygon-farm-pack-146192


如下图所示,使用通用渲染管线,项目能够在视觉效果相同的情况下拥有更高的帧率。



下图为使用通用渲染管线的性能表现。



下图为使用内置渲染管线的性能表现。



下表是具体对比数据情况。

Draw Call上的差距是因为通用渲染管线并不需要为额外的光照渲染Draw Call。Batch中的差距是因为通用渲染管线会在每个着色器上进行批处理,而内置渲染管线则会在每个材质上进行处理。


类别

通用渲染管线

内置渲染管线

CPU耗时

12.9ms

20.6ms

GPU耗时

16.6ms

22.6ms

Draw Call

978

1314

Batch

103

976

带宽

50.6MB

117MB


如果升级项目后并没有明显的性能提升,请检查两个管线间的质量设置是否相同。通用渲染管线控制管线资源中质量的方方面面,根据每个质量设置单独设置管线资源。


使用通用渲染管线,我们可根据不同的平台调整图像质量,同时也能够集中控制所有管线资源的质量设置。而使用内置渲染管线,各项设置则散布在Quality Settings质量设置和Graphics Tiers图形层级上。


当项目转换到通用渲染管线上时,原先项目的设置并不会自动升级,我们需要手动升级质量设置。如果转换后项目的画面品质相同,但性能却更低了,请在务必提交错误报告,以便我们查找原因。


如下图所示,我们可根据各个质量设置分别指定渲染管线资源。


通用渲染管线的未来

我们将持续改进通用渲染管线,带来Visual Effect Graph、Shader Graph、Custom Render Passes及最新Post-Processing后期处理功能的各种便利,实现更好的图像质量与性能,且只需一次开发,便可在大量的平台上部署。


在2020年,我们将加入内置渲染器的对应功能,包括:延迟渲染器和镜头堆叠。你将能够以不同的方式在项目中使用相同的功能。


在开发可编程渲染管线时,我们也重新设计了渲染系统,随着我们开发出更好的替代功能,原先的部分功能会被弃用,而通用渲染管线中发生变更的部分有渲染回调,GrabPass和镜头堆叠。


除了改进功能,我们还在不断提升了性能。在相同的质量设置下,和之前的渲染方案相比,通用渲染管线在大多数情况下有相同甚至更好的性能表现。


在2021年,我们希望在确保所有支持平台性能稳定的前提下,将通用渲染管线的功能拓展到高级移动端及主机平台上。


通用渲染管线和高清晰渲染管线

通用渲染管线将不会取代或包含高清晰渲染管线HDRP。


我们计划将通用渲染管线作为未来Unity的默认渲染管线,一次开发,便可随处部署。它比内置渲染管线更灵活、更可拓展并提供更好的性能,且提供更优质的图形质量。


HDRP则用于制作顶级图形效果,如果你有明确的目标,想在高端硬件上极力展现具有高性能的高保真度视觉效果,HDRP将是你的不二之选。


最后,根据自己项目的功能和平台需求来选择合适的渲染管线。


小结

通用渲染管线已经可供正式使用,快来使用升级工具升级项目,或使用Unity Hub上的Universal通用模板来创建新项目吧。


如果你有任何反馈,请访问Unity官方通用渲染管线论坛:

https://forum.unity.com/forums/universal-render-pipeline.383


下载Unity Connect APP,请点击此处 观看部分Unity官方视频,请关注B站帐户:Unity官方


你可以访问Unity答疑专区留下你的问题,Unity社区和官方团队帮你解答:

Connect.unity.com/g/discussion


推荐阅读

Unite Copenhagen Keynote:实时3D技术再造世界
Unity 2019.3 Beta版发布
Unity浏览器实时流传输框架WebRTC发布
deltaDNA将加入Unity,带来与玩家沟通的一流工具
使用Unity制作起雾的窗户效果着色器
Unity与《狮子王》,再创奇幻世界


喜欢本文,请点“在看”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存